package interview.huawei.tjt.training.str;

import java.util.Scanner;

/**
 * 给定一个字符串 s 和一个整数 k，你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。
 *
 * 如果剩余字符少于 k 个，则将剩余字符全部反转。
 *
 * 如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。
 *
 * 示例:
 *
 * 输入: s = "abcdefg", k = 2
 * 输出: "bacdfeg"
 */
public class ReverseStr2 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            char[] s = sc.nextLine().toCharArray();
            int k = sc.nextInt();
            for (int i = 0; i < s.length; i +=  2 * k) {
                int start = i;
                // 判断最后一次的剩余字符的位数够不够K个,取前k个字符进行反转
                int end = Math.min(s.length - 1, i + k - 1);
                while (start < end) {
                    char str = s[start];
                    s[start] = s[end];
                    s[end] = str;
                    start ++;
                    end --;
                }
            }
            System.out.println(new String(s));
        }
    }

}
